%matplotlib inline
import numpy as np
import skimage as ski
from skimage import exposure, io
from skimage.morphology import disk, square
from skimage.filters import rank, median, gaussian
from skimage.color import rgb2hsv, hsv2rgb, rgb2gray, gray2rgb
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (20.0, 16.0)
image = io.imread('./data/input2.bmp')
plt.imshow(image)
for i in range(3):
image[:, :, i] = median(image[:, :, i], square(10))
plt.imshow(image)
f, axarr = plt.subplots(3)
axarr[0].hist(image[:, :, 0].ravel(), bins=256, color='r')
axarr[1].hist(image[:, :, 1].ravel(), bins=256, color='g')
axarr[2].hist(image[:, :, 2].ravel(), bins=256, color='b')
plt.show()
image_hsv = rgb2hsv(image)
# image_hsv[:, :, 2] = exposure.equalize_hist(image[:, :, 2])
image_hsv[:, :, 2] = image[:, :, 2]/255
image = hsv2rgb(image_hsv)
plt.imshow(image)
image_hsv = rgb2hsv(image)
image_hsv[:, :, 2] = exposure.equalize_hist(image_hsv[:, :, 2])
plt.hist(image_hsv[:, :, 2].ravel(), bins=256)
plt.show()
image_hsv[:, :, 1] *= 2
image_hsv[:, :, 1][image_hsv[:, :, 1] > 1] = 1
image = hsv2rgb(image_hsv)
plt.imshow(image)
# image[:, :, 0] = exposure.rescale_intensity(image[:, :, 0], in_range=(55, 255))
for i in range(3):
image[:, :, i] = exposure.rescale_intensity(image[:, :, i], in_range=(0.1, 1))
plt.imshow(image)
io.imsave('./data/output2.bmp', image)